
import java.util.*;

/**
 * <p>
 * Botao generico que mantem a informacao de estado relativo ao botao estar
 * armado ou nao. Se armado, entao o Botao foi acionado, mas a solicitacao
 * feita atraves do acionamento mais recente ainda nao foi atendida.
 * </p>
 */
abstract class Botao {

  ///////////////////////////////////////
  // attributes


/**
 * <p>
 * Quando true indica que o Botao esta' armado, isto e', ele foi acionado e
 * ainda nao teve o mas seu pedido atendido.
 * </p>
 */
    private boolean armado; 

  ///////////////////////////////////////
  // operations


/**
 * <p>
 * Construtor que auxilia na geracao de uma instancia de um classe derivada
 * de Botao.
 * </p>
 * 
 * @return um Botao.
 */
    public  Botao() {        
        armado = false;
    } // end Botao        

/**
 * <p>
 * Arma o Botao para indicar acionamento.
 * </p>
 */
    protected void armar() {        
        armado = true;
    } // end armar        

/**
 * <p>
 * Desarma o Botao para indicar que teve atendido o pedido feito pelo
 * acionamento mais recente (Elevador chegou ao andar desejado).
 * </p>
 */
    protected void desarmar() {        
        armado = false;
    } // end desarmar        

/**
 * <p>
 * Informa se o Botao esta' armado.
 * </p>
 * @return true - armado; false - desarmado.
 */
    public boolean isArmado() {        
        return armado;
    } // end isArmado        

 } // end Botao



